#leetcode题目7：反转整数 reverse integer
#难度：简单
#时间复杂度：O(logn)
#空间复杂度：O(1)
#解题思路：模拟
#见b站

#方法：我的解法，符号分离法
# class Solution:
#     def reverse(self, x: int) -> int:
#         if x==0:
#             return 0
#         if x<0:
#             x=-x
#             sign=-1
#         else:   
#             sign=1

#         res=0
#         while x>0:
#             res=res*10+x%10
#             x=x//10
#         return sign*res

#视频解法，绝对值法
class Solution:
    def reverse(self, x: int) -> int:
        num=0
        a=abs(x)
        while a!=0:
            temp=a%10
            num=num*10+temp
            a=a//10
        if x>0 and num<2**31-1:
            return num
        if x<0 and num<=2**31-1:
            num=-num
            return num
        else:
            return 0

        
        

#测试数据
x=123
solution=Solution()
print(solution.reverse(x))

x=-123
solution=Solution()
print(solution.reverse(x))

x=120
solution=Solution()
print(solution.reverse(x))

